import axios from 'axios';
import qs from 'qs';

let proxy = "";

let req = axios.create({
    baseURL: proxy + "/api",
    timeout: 180000
});

// 用户身份鉴权，通过axios响应拦截器，当一个返回权限错误[403]
// 取消所有请求，并跳转到/login地址，强制让用户登录

export function staticUrl(src) {
    if (!src) {
        return "";
    }
    return proxy + "/" + src
}

// 根据关键字搜索物品
export function search(opt) {
    return req.get(`/search` + qs.stringify(opt, {addQueryPrefix: true}));
}

// 获取物品详细信息
export function getObjectData(opt) {
    return req.get(`/object/${opt.id}`);
}

// 获取盒子信息
export function getBoxData(opt) {
    return req.get(`/box/${opt.id}`);
}

// 获取盒子中的盒子列表
export function getBoxInBoxData(opt) {
    return req.get(`/box/${opt.id}/boxes` + qs.stringify(opt, {addQueryPrefix: true}));
}

// 获取盒子中的物品列表
export function getObjectInBoxData(opt) {
    return req.get(`/box/${opt.id}/objects` + qs.stringify(opt, {addQueryPrefix: true}));
}

// 往盒子中增加物品
export function addObjectInBox(opt) {
    let fd = new FormData();
    fd.append("name", opt["name"]);
    fd.append("desc", opt["desc"] || "什么都没有写。。。");
    fd.append("image", opt["image"]);
    fd.append("keywords", opt["keywords"]);
    fd.append("count", opt["count"]);

    return req.post(`/box/${opt.id}/object`, fd);
}

// 创建一个盒子
export function createBox(opt) {
    let fd = new FormData();
    fd.append("name", opt["name"]);
    fd.append("desc", opt["desc"] || "什么都没有写。。。");
    fd.append("image", opt["image"]);
    fd.append("keywords", opt["keywords"]);

    return req.post(`/box/${opt.id}`, fd);
}

// 获取所有盒子
export function getBoxes(opt) {
    return req.get(`/boxes` + qs.stringify(opt, {addQueryPrefix: true}));
}

// 删除盒子
export function delBox(opt) {
    return req.delete(`/box/${opt.id}`);
}

// 删除物品
export function delObject(opt) {
    return req.delete(`/object/${opt.id}`);
}

// 往盒子中增加一个盒子
export function addBoxInBox(opt) {
    return req.post(`/box/${opt.id}/box`, qs.stringify(opt));
}